Mobile Application Creation System

ABSTRACT

A computer implemented method and system for creating a mobile application provides a mobile application development software (MADS) and pre-coded software components (PCSCs) encapsulated in a mobile application creation interface (MACI). The MADS dynamically maps data to be rendered in the mobile application with one or more data sources and launches the MACI. The MADS creates one or more composite software components (CSCs) by combining more than one of distinct software components selected from component sources and/or the PCSCs. The MADS inserts one or more PCSCs and/or CSCs into the MACI. The MADS generates one or more recommendations for adding one or more characteristic objects associated with the mobile application. The MADS creates the mobile application using the inserted PCSCs, the created composite software components, the recommendations, the dynamically mapped data, and/or an adaptively configured application programming interfaces that facilitate backend integration of the mobile application with the user device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of non-provisional patentapplication Ser. No. 13/946,325, titled “Mobile Application CreationSystem”, filed on Jul. 19, 2013 in the United States Patent andTrademark Office, which claims the priority and benefit of provisionalpatent application No. 61/673,702 titled “Mobile Application CreationSystem”, filed in the United States Patent and Trademark Office on Jul.19, 2012.

The specifications of the above referenced patent applications areincorporated herein by reference in their entirety.

BACKGROUND

Consumers and business entities are increasingly using mobile devicessuch as smart phones, tablet computing devices, personal digitalassistants, other handheld devices, etc., for performing variouspersonal, work, and business or enterprise related tasks. In addition tousing mobile devices for different forms of communication, for example,voice communication, messaging, etc., these mobile devices also allowconsumers and business entities to perform other functions such asaccessing and displaying websites, sending and receiving electronicmails, capturing and displaying images, playing videos, music and otherforms of audio, social networking, etc. These functions are typicallyperformed by software applications that are either built into the mobiledevices or that are run on top of operating systems of the mobiledevices.

Competing mobile device manufacturers, developers, and other serviceproviders typically offer hardware and software in the form of mobileoperating systems or in some cases, a combination of both hardware andsoftware, which has led to the development of dissimilar andincompatible mobile device platforms and environments due to the use ofdifferent operating systems which have their own programmingenvironments and software development tools. Developing mobileapplications for these different operating systems and mobile devicesrequires varying design techniques, programming languages, separateoperating system specific or device specific software code andcompilations, etc. Therefore, developers find it difficult andchallenging to develop mobile applications that are portable acrossmultiple types of mobile devices. Furthermore, developers requirespecific technical knowledge and expertise in software programming withspecific programming languages and an understanding of specific mobileoperating system platforms for developing mobile applications fordifferent types of mobile operating systems and/or mobile devices. Sincea high level of skill and expertise is needed to create, deploy andupdate mobile applications, many non-technical users and users who lackexperience in a specific programming language or a specific mobileoperating system cannot develop and/or distribute mobile applications.

Conventional mobile development platforms typically allow users todevelop mobile applications of a particular type that cannot beconfigured or changed and therefore limit the development andutilization of various features and specific functions included inmobile devices and their respective mobile operating systems. The scopeof these mobile applications are limited to consumer applications suchas access to website content, graphics, video, books, links to a socialprofile, etc. These mobile development platforms allow non-technicalusers to develop only generic business to consumer (B2C) applicationswith simplified rules. Business to consumer (B2C) type of mobileapplications comprising metadata, for example, an application type arerelatively easier to develop and are supported by most mobiledevelopment platforms. There is a need for providing pre-coded softwarecomponents that are connected to backend databases to enablenon-technical users to create mobile applications of different typeswithout coding and by unifying similar or disparate software componentsfrom multiple data sources.

Moreover, conventional mobile development platforms only provide accessto a single layer of data that allow, for example, web pages to beassembled on the fly but do not provide support for hierarchical layersof data, data interaction, and business rules that allow non-technicalenterprise users to quickly assemble software components to developenhanced enterprise grade mobile applications. Moreover, conventionalmobile development platforms do not allow backend integration of thedeveloped mobile application with the user's computing device or withbackend databases for non-technical users.

Furthermore, context and behavioral elements, for example, userbehavior, user intent, etc., varies from one user to another, andtypical mobile application development platforms do not providecomponents or tools that are adaptable based on the context andbehavioral elements. Moreover, conventional mobile applicationdevelopment platforms do not support dynamic data mapping forestablishing a link between the data being rendered and multiple datasources prior to creation of a mobile application. Furthermore,non-technical users may not be aware of enhanced functions and featuresthat can be implemented in a mobile application for enhancing the mobileapplication. There is a need for providing recommendations to a user foraddition of enhanced functions and features in the mobile applicationbased on a real time analysis of similar mobile applications developed,for example, based on functionality, an industry, and/or a categoryrelated to the mobile application.

Wearable devices, for example, the Google Glass® of Google Inc., iWatchof Apple Inc., etc., and associated technology are becoming morewidespread and are being used in everyday life for carrying out variousactivities. Moreover, due to recent adoption of policies, for example,bring your own devices (BYOD), organizations are in constant need ofmobile application development platforms that can be used bynon-technical users to design and develop complex mobile applicationsthat can be deployed across various devices including wearable deviceswith varying degrees of form factors, to securely manage upgrades anddownloads through an application store, and to manage usage statisticsto gain better visibility on mobile application usage. Typical mobileapplication development platforms do not allow non-technical users todevelop and deploy complex business to business (B2B) mobileapplications for these wearable devices.

Furthermore, machine to machine (M2M) applications use a device, forexample, a sensor, a meter, etc., to capture an event, for example,temperature, an inventory level, etc., relay the captured event, forexample, through a wireless, wired or hybrid network to a mobileapplication, and translate the captured event into meaningfulinformation. The M2M applications allow both wireless and wired systemsto communicate with other devices of the same ability. Typical mobileapplication development platforms do not combine device data, forexample, sensor data with application business processes to enabledecision making based on real time analytics and mashup applications.

Hence, there is a long felt but unresolved need for a computerimplemented method and system that provides encapsulated pre-codedsoftware components to perform multiple functions in the form of asoftware package and enterprise grade mobile applications that areconnected with backend databases, enables creation of enhanced softwarecomponents or widgets without coding, provides support for native, weband cross platform mobile applications, provides an interface todynamically map backend data sources and add new fields on the fly,provides connection of data from multiple data sources, enables creationof complex business to business (B2B) mobile applications that requirecomplex business rules and data validation, allows development of M2Mapplications or sensor specific applications that combine sensor datawith business processes and creation of process and sensor composite ormashup applications, and implements application programming interfacesfor backend integration of the developed mobile application with theuser's computing device and with backend databases. Furthermore, thereis a need for a computer implemented method and system that enables auser to create mobile applications with software components thatcomprise hierarchical layers of data and that adapt based on the contextand behavioral elements of the user when deployed on mobile devices.Furthermore, there is a need for a computer implemented method andsystem that enables non-technical users to develop and deploy complexmobile applications for various devices including the wearable deviceswithout any programming.

SUMMARY OF THE INVENTION

This summary is provided to introduce a selection of concepts in asimplified form that are further disclosed in the detailed descriptionof the invention. This summary is not intended to identify key oressential inventive concepts of the claimed subject matter, nor is itintended for determining the scope of the claimed subject matter.

The computer implemented method and system disclosed herein address theabove stated needs for providing encapsulated pre-coded softwarecomponents to perform multiple functions in the form of a softwarepackage and enterprise grade mobile applications that are connected withbackend databases, enabling creation of enhanced software components orwidgets without coding, providing support for native, web and crossplatform mobile applications, providing an interface to dynamically mapbackend data sources and add new fields on the fly, providing connectionof data from multiple data sources, enabling creation of complexbusiness to business (B2B) mobile applications that require complexbusiness rules and data validation, allowing development of machine tomachine (M2M) applications or sensor specific applications that combinesensor data with business processes and creation of process and sensorcomposite or mashup applications, and implementing applicationprogramming interfaces for backend integration of the developed mobileapplication with a user device and with backend databases. The computerimplemented method and system disclosed herein also address the abovestated needs for enabling a user to create mobile applications withsoftware components that comprise hierarchical layers of data and thatadapt based on the context and behavioral elements of the user, whendeployed on mobile devices, and for allowing development and deploymentof mobile applications for various devices including wearable devices,for example, Google Glass® of Google Inc., iWatch of Apple Inc., etc.

The computer implemented method and system disclosed herein provides amobile application development software for creating a mobileapplication for a user device. The mobile application developmentsoftware is executable by at least one processor configured to createthe mobile application. The mobile application development software isconfigured as a platform that allows a user to access the platform usinga thin client via a browser such as an internet browser and createcomplex mobile applications using tools and/or libraries hosted on anetwork such as the internet or hosted in a cloud computing environment.As used herein, the term “cloud computing environment” refers to aprocessing environment comprising configurable computing physical andlogical resources, for example, networks, servers, storage,applications, services, etc., and data distributed over a network, forexample, the internet. The mobile application development software ishosted on a mobile application development platform. The mobileapplication development software is accessible by a user device, forexample, a personal computer, a tablet computing device, a mobilecomputer, a mobile phone, a smart phone, a portable computing device, alaptop, a personal digital assistant, a touch centric device, aworkstation, a client device, a portable electronic device, a networkenabled computing device, a gaming device, an interactive networkenabled communication device, a wearable device such as Google Glass® ofGoogle Inc., iWatch of Apple Inc., etc., any other suitable computingequipment, and combinations of multiple pieces of computing equipment,etc., via a network. In an embodiment, the mobile applicationdevelopment software is configured to operate, for example, as asoftware as a service (SaaS) or a platform as a service (PaaS).

The computer implemented method and system disclosed herein alsoprovides multiple pre-coded software components executable by at leastone processor and encapsulated in a mobile application creationinterface. As used herein, the term “pre-coded software components”refers to pieces of pre-written computer program code encapsulated toperform predefined functions in the form of a software package or asoftware model. The pre-coded software components comprise, for example,smart widgets, micro widgets, etc. The pre-coded software components areadaptable based on mobile context and behavioral elements, for example,preferences of a user, habits of a user, etc. The pre-coded softwarecomponents comprise hierarchical layers of data, interactive elementsthat enable interactions with the data, and predetermined criteria. Asused herein, the term “interactive element” refers to any interfacecomponent configured to obtain data or feedback from a user, transformthe obtained data into one or more visual entities, enable real timeuser interactions within the mobile application creation interface, etc.In an embodiment, the pre-coded software components further comprisesocial networking components that embed social features with businessprocesses and/or follow up action items in the mobile application. Also,as used herein, the term “mobile application user interface” refers to auser interface simulator that allows the user to create the mobileapplication, in communication with the mobile application developmentsoftware. In an embodiment, the pre-coded software components areconfigurable for generating supplementary software components, forexample, smart widgets, micro widgets, etc., using the mobileapplication development software and multiple data sources.

The mobile application development software dynamically maps the data tobe rendered in the mobile application with one or more data sources. Inan embodiment, the mobile application development software dynamicallypopulates the data sources in the mobile application creation interfaceand allows mapping of one or more of the data sources to one or more ofthe pre-coded software components for updating the pre-coded softwarecomponents and/or for creating one or more distinct software components.The mobile application development software receives a selection ofpreconfigured user interfaces or a list of predefined user interfacesfrom the user device via the network for launching the mobileapplication creation interface. The user selects one or more of thepre-coded software components provided and displayed by the mobileapplication development software. The mobile application developmentsoftware receives an indication of each of the selected pre-codedsoftware components from the user device via the network. The mobileapplication development software creates one or more composite softwarecomponents by combining more than one of distinct software componentsselected from multiple component sources and/or the pre-coded softwarecomponents. As used herein, the term “composite software component”refers to a software component that uses and combines data,presentations, and/or functionalities from two or more component sourcesand functions as a new software component with a combination of data,presentations, and/or functionalities. The mobile applicationdevelopment software then inserts one or more of the selected pre-codedsoftware components and the created composite software components intothe launched mobile application creation interface.

The mobile application development software generates one or morerecommendations for addition of one or more characteristic objectsassociated with the mobile application based on a real time analysis anddynamic learning of selective data of similar mobile applicationsdeveloped, for example, based on functionality, an industry, a category,etc., related to the mobile application. As used herein, the term“characteristic objects” refer to additional features and functionscharacteristic to the functions, industries, and categories of othermobile applications that are similar to the mobile application beingcreated, and that may be incorporated into the mobile application beingcreated. In an embodiment, the mobile application development softwaredynamically updates the generated recommendations for the addition ofone or more characteristic objects associated with the mobileapplication based on a selection of one or more supplementarycharacteristic objects received from the user device. The mobileapplication development software also adaptively configures one or moreapplication programming interfaces (APIs) for a backend integration ofthe mobile application with the user device for operating the mobileapplication on the user device. The adaptively configured applicationprogramming interfaces implement, for example, one or more of a backoffice integration, a machine to machine convergence, a process tomachine interaction, gamification, augmented reality, near fieldcommunication, etc., for establishing communication and exchange of thedata between the created mobile application and the user device.

The mobile application development software creates the mobileapplication in the launched mobile application creation interface usingone or more of the inserted pre-coded software components and thecreated composite software components, the generated recommendations,the dynamically mapped data, and the adaptively configured applicationprogramming interfaces. In an embodiment, the mobile applicationdevelopment platform generates revenue by distributing the createdmobile application to enterprise application stores for a fee. In anembodiment, the mobile application development software displays realtime data simulations of the mobile application in the launched mobileapplication creation interface during each stage of the creation of themobile application. The mobile application development software connectsthe created mobile application to multiple backend databases via thenetwork for creating enhanced mobile applications, for example,enterprise grade mobile applications. The mobile application developmentsoftware enables creation of mobile applications of multiple types, forexample, a native type of mobile application, a web type of mobileapplication, a cross platform type of mobile application, etc. In anembodiment, the mobile application development software provides directaccess to web services and/or application programming interfaces (APIs)from a web address. In another embodiment, the mobile applicationdevelopment software collects real time usage data for tracking andcategorizing users of the created mobile application and for providingreal time analytics to target surveys, advertisements, etc., forexample, to cross sell and/or up sell offerings, to provide offerings toretain mobile customers based on the mobile application usage andpreferences, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofthe invention, is better understood when read in conjunction with theappended drawings. For the purpose of illustrating the invention,exemplary constructions of the invention are shown in the drawings.However, the invention is not limited to the specific methods andcomponents disclosed herein.

FIG. 1 illustrates a computer implemented method for creating a mobileapplication for a user device.

FIG. 2 exemplarily illustrates a high level architecture of a computerimplemented system for creating a mobile application for a user device.

FIG. 3 exemplarily illustrates a computer implemented system forcreating a mobile application for a user device, showing differentmodules of a mobile application development software.

FIG. 4 exemplarily illustrates the architecture of a computer systememployed by the mobile application development software for creating amobile application for a user device.

FIG. 5 exemplarily illustrates a low level architecture of the computerimplemented system for creating a mobile application for a user device.

FIGS. 6A-6E exemplarily illustrate screenshots showing softwarecomponents encapsulated in a mobile application creation interface.

FIGS. 6F-6G exemplarily illustrate screenshots showing creation of amobile application for a user device.

FIG. 7 exemplarily illustrates a process flow diagram showing the stepsperformed by the mobile application development software for creating amobile application for a user device.

FIG. 8 exemplarily illustrates a screenshot showing dynamic mapping ofdata to be rendered in a mobile application.

FIG. 9 exemplarily illustrates a process flow diagram showing the stepsperformed by the mobile application development software for creating amobile application for a user device and deploying the created mobileapplication in an enterprise application store.

FIG. 10 exemplarily illustrates a process flow diagram showing the stepsperformed by a recommendation engine of the mobile applicationdevelopment software.

FIG. 11 exemplarily illustrates a process flow diagram showing the stepsperformed by a backend integration module of the mobile applicationdevelopment software.

FIG. 12 exemplarily illustrates a process flow diagram showing the stepsperformed by the recommendation engine using an analytics engine of themobile application development software.

FIG. 13 exemplarily illustrates the computer implemented systemcomprising the mobile application development software hosted in a cloudcomputing environment accessible by power users and developers forcreating mobile applications for end users.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates a computer implemented method for creating a mobileapplication for a user device. The computer implemented method disclosedherein provides 101 a mobile application development software executableby at least one processor configured to create the mobile application.The mobile application development software is configured as a platformthat allows a user to access the platform using a thin client via abrowser such as an internet browser and create complex mobileapplications using tools and/or libraries hosted on a network such asthe internet or hosted in a cloud computing environment. As used herein,the term” cloud computing environment” refers to a processingenvironment comprising configurable computing physical and logicalresources, for example, networks, servers, storage, applications,services, etc., and data distributed over a network, for example, theinternet. The cloud computing environment provides on-demand networkaccess to a shared pool of configurable computing physical and logicalresources. In an embodiment, the mobile application development softwareis configured to operate, for example, as a software as a service (SaaS)such as an enterprise based software service or as a platform as aservice (PaaS) in a cloud computing environment. The computerimplemented method disclosed herein therefore provides mobileapplication development as a service. The mobile application developmentsoftware is accessible by a user device, for example, a personalcomputer, a tablet computing device, a mobile computer, a mobile phone,a smart phone, a portable computing device, a laptop, a personal digitalassistant, a touch centric device, a workstation, a client device, aportable electronic device, a network enabled computing device, a gamingdevice, an interactive network enabled communication device, a wearabledevice such as Google Glass® of Google Inc., iWatch of Apple Inc., etc.,any other suitable computing equipment, and combinations of multiplepieces of computing equipment, etc., via a network. The network is, forexample, the internet, an intranet, a wired network, a wireless network,a network that implements Wi-Fi® of the Wireless Ethernet CompatibilityAlliance, Inc., an ultra-wideband communication network (UWB), awireless universal serial bus (USB) communication network, acommunication network that implements ZigBee® of ZigBee AllianceCorporation, a general packet radio service (GPRS) network, a mobiletelecommunication network such as a global system for mobile (GSM)communications network, a code division multiple access (CDMA) network,a third generation (3G) mobile communication network, a fourthgeneration (4G) mobile communication network, a long-term evolution(LTE) mobile communication network, a public telephone network, etc., alocal area network, a wide area network, an internet connection network,an infrared communication network, etc., or a network formed from anycombination of these networks.

The mobile application development software provides 102 multiplepre-coded software components, for example, smart widgets, microwidgets, etc., executable by at least one processor and encapsulated ina mobile application creation interface. As used herein, the term“pre-coded software components” refers to pieces of pre-written computerprogram code encapsulated to perform predefined functions in the form ofa software package or a software model, for example, a smart widget, amicro widget, etc. Also, as used herein, the term “mobile applicationuser interface” refers to a user interface simulator that allows theuser to create the mobile application, in communication with the mobileapplication development software. The mobile application user interfaceis, for example, an online web interface accessible via a network suchas the internet. The pre-coded software components may contain featuresthat are adaptable based on context and behavioral elements, forexample, preferences of a user, habits of a user, etc. The pre-codedsoftware components such as smart widgets contain elements that areadaptable to the behavioral mindset of a mobile native user while theuser accesses the smart widgets from the user device. For example, asales management mobile application may highlight a list of accounts tofollow up with based on contextual and behavioral elements such as asales representative location and a contract review date.

The pre-coded software components further comprise hierarchical layersof data, for example, multiple layers of pages, interactive elementsthat enable interactions with the data, and predetermined criteria. Asused herein, the term “interactive element” refers to any interfacecomponent configured to obtain data or feedback from a user, transformthe obtained data into one or more visual entities, enable real timeuser interactions within the mobile application creation interface, etc.The predetermined criteria comprise, for example, a business rules. Asan example, a business rule defines that a user can create newopportunities only for customers with existing accounts or customers.The mobile application development software provides, for example, apre-coded opportunity widget that enables a user to search and selectexisting customers prior to creating a new opportunity record from theiruser device. If a customer does not exist in a database, the mobileapplication development software instructs the user to create a new userrecord prior to entering new opportunities. The mobile applicationdevelopment software represents the pre-coded software components asreusable graphical user interface elements on the mobile applicationcreation interface. The pre-coded software components, for example,smart widgets are preassembled based on business process flow andrequirements. The pre-coded software components comprise multiple layersof pages and/or user interfaces (UIs) and business rules. The pagesand/or UIs are designed for mobile consumption unlike other applicationdevelopment platforms that provide only web pages to be assembled on thefly. For example, a marketing widget comprises relevant data fieldsshown on multiple layers of pages and business rules to allow a companyto enforce certain business rules that each user has to follow whileallowing each user to personalize the mobile application for their ownconsumption.

The pre-coded software components enable business process management,capture of documents, notes, etc., via a keyboard or another inputdevice, via voice, etc., and social collaboration. In an embodiment, thepre-coded software components further comprise social networkingcomponents that embed social features with business processes in themobile application. A user may insert social networking components, forexample, a “like” button or a “follow” button in the mobile applicationto allow users to collaborate with other users who may share a commoninterest. Consider an example where a marketing team of an organizationis working with a prospect and maintains an account for that prospect.From a social networking point of view, a user can “follow” and/or“like” the prospect's account through the mobile application and theteam can add comments or collaborate with other users of the mobileapplication. The social networking components combine social sharingwith business process management by embedding the social networkingfeatures within the business process of a pre-sales life cycle. Inanother embodiment, the pre-coded software components further comprisesocial networking components embedded with follow up action items. Auser may insert a social networking component, for example, a “like”button along with a request to perform a follow up action item in themobile application. For example, when a user clicks on the “like” buttonin the mobile application, the user is also required to take an actionrelevant to a social media item such as post a feedback note, buy aproduct, show an intent to buy a product, or any other type of follow upaction item. In an embodiment, the pre-coded software components areconfigurable for generating supplementary software components, forexample, smart widgets, micro widgets, etc., using the mobileapplication development software and multiple data sources.

The mobile application development software dynamically maps 103 thedata to be rendered in the mobile application with one or more ofmultiple data sources. The data sources comprise other mobileapplications and databases that are enabled for mobile consumption viaapplication programming interfaces (APIs). For example, the mobileapplication development software maps the data to be rendered in themobile application by linking the data, for example, with backend datasources, remote data sources, sensors, etc. In an embodiment, the mobileapplication development software dynamically populates the data sourcesin the mobile application creation interface and allows mapping of oneor more of the data sources to one or more of the pre-coded softwarecomponents for updating the pre-coded software components and/or forcreating one or more distinct software components. The dynamicpopulation of data sources in the mobile application creation interfaceallows a user to map one or more data sources to either an existingwidget or create a new widget. In an embodiment, the dynamic mapping ofdata allows a user to generate a supplementary software component, forexample, a widget that is connected to multiple data sources such asbackend data sources, remote data sources, etc., and populate only thosedata fields in the mobile application that are mapped by the user.Consider an example where a data source has 10 data fields and there isa corresponding widget that shows all 10 data fields in the mobileapplication. If a company or a user wants to display only 5 data fieldsin the created mobile application, a user can map only those 5 datafields so that when a user drags and drops the widget on the mobileapplication creation interface or a simulator of the user device, onlythe mapped data fields, for example, 5 data fields are shown in thecreated mobile application. In an embodiment, the user is required tocreate data mappings and/or business rules before assembling the mobileapplication.

The mobile application development software receives 104 a selection ofone of the preconfigured user interfaces also referred to as “custom”user interfaces, or one of a list of predefined user interfaces alsoreferred to as “prebuilt” user interfaces, from the user device via thenetwork for launching the mobile application creation interface. Forexample, the user may select a user interface designed by a user or astandard user interface provided by the mobile application developmentsoftware for launching the mobile application creation interface. Theuser can then select one or more of the pre-coded software componentsprovided and displayed by the mobile application development software.The mobile application development software enables non-technicalenterprise users to quickly assemble smart widgets to develop enterprisegrade mobile applications. The smart widget is preassembled based onbusiness process flow and requirements. The mobile applicationdevelopment software allows users to drag and drop these preassembledwidgets that comprise multiple layers of pages and business rules intothe launched mobile application creation interface. The mobileapplication development software receives 105 an indication of each ofthe selected pre-coded software components from the user device via thenetwork. For example, the mobile application development softwarereceives a selection of pre-coded software components such as a smartwidget, a micro widget, etc., from the user device.

The mobile application development software creates 106 one or morecomposite software components by combining more than one of distinctsoftware components selected from multiple component or data sourcesand/or the pre-coded software components. As used herein, the term“composite software component” refers to a software component that usesand combines data, presentations, and/or functionalities from two ormore component sources and functions as a new software component with acombination of data, presentations, and/or functionalities. For example,the mobile application development software creates composite softwarecomponents such as mashups by combining more than one disparatepre-coded software component. In another example, the mobile applicationdevelopment software creates composite software components by combiningmore than one disparate software component from remote data sources, orby combining two or more disparate pre-coded software components anddisparate software components from remote data sources. In anotherexample, a user can assemble the mobile application by combining smartwidgets connected to one or more component or data sources. The mobileapplication development software therefore enables creation of machineto machine (M2M) or sensor specific mobile applications and creation ofprocess and sensor mashup applications. In an embodiment, the mobileapplication development software provides a drag and drop optionassociated with each of the pre-coded software components and thecomposite software components for allowing the user to virtually grabone or more of the pre-coded software components and the createdcomposite software components and drag the pre-coded software componentsand the created composite software components into the launched mobileapplication creation interface. The mobile application developmentsoftware enables the user to develop enterprise grade mobileapplications using the drag and drop option. The mobile applicationdevelopment software inserts 107 one or more of the selected pre-codedsoftware components and the created composite software components intothe launched mobile application creation interface, as the user dragsand drops the software components into the launched mobile applicationcreation interface.

The mobile application development software generates 108 one or morerecommendations for addition of one or more characteristic objectsassociated with the mobile application based on a real time analysis anddynamic learning of selective data of similar mobile applicationsdeveloped, for example, based on functionality, an industry, and/or acategory related to the mobile application. As used herein, the term“characteristic objects” refer to additional features and functionscharacteristic to the functions, industries, and categories of othermobile applications that are similar to the mobile application beingcreated, and that may be incorporated into the mobile application beingcreated. Consider an example where a user wishes to create an inventorymanagement application based on the user's knowledge and businessrequirements. The user decides to include some basic features to enablean end user to perform certain functions. Based on the functionality,the industry, and the category of the inventory management application,a recommendation engine of the mobile application development softwareanalyzes similar applications developed by other users and compares thecharacteristic objects included. If the comparison results show anadditional characteristic object relevant to the inventory managementapplication, the recommendation engine generates a recommendation toinclude that characteristic object in the inventory managementapplication. While assembling the mobile application, the recommendationengine learns from other mobile applications being developed based onthe type of mobile application and other characteristics and generatesrecommendations based on a real time analysis of the data. The user hasthe option of accepting or rejecting the generated recommendation.

Consider another example where a sales mobile application created by auser comprises multiple associated widgets. The widgets associated withthe sales mobile application are, for example, accounts, contacts,leads, etc. The mobile application development software dynamicallyupdates the associated widgets based on addition of other widgets forthe same mobile application type. If another user while creating thesame mobile application type, that is a sales type of mobileapplication, decides to add an opportunity widget and agrees to sharethe selection, the mobile application development software dynamicallyassociates the opportunity widget with the sales application. Thisassociation grows as more and more users add additional widgets todevelop a certain type of mobile application. In another example, themobile application development software provides a real timerecommendation of certain features to be added to the mobile applicationand also the type of mobile applications that should be developed at anenterprise level.

In an embodiment, the mobile application development softwaredynamically updates the generated recommendations for addition of thecharacteristic objects associated with the mobile application based on aselection of one or more supplementary characteristic objects receivedfrom the user device. For example, the mobile application developmentsoftware dynamically updates the generated recommendations pertaining toa sales function, industry, or category, if a user selects addition of acharacteristic object such as tracking a sales order. The mobileapplication development software leverages selective data to providespecific recommendations to end users while they use a mobileapplication created using the mobile application development software.

The mobile application development software adaptively configures 109one or more application programming interfaces (APIs) for a backendintegration of the mobile application with the user device for operatingthe mobile application on the user device. The mobile applicationdevelopment software enables standard backend integration via theapplication programming interfaces (APIs), which does not requireadditional programming. That is, the same API can connect to either aprocess based backend data/system or another sensor. The mobileapplication development software passes a parameter to indicate the typeof connection between the mobile application and the user device and/ora data source. The mobile application development software configuresthe API to adjust the configuration based on the connection type thusminimizing efforts on further programming. The configuration of the APIhelps users to easily integrate machine to machine (M2M) or sensorspecific data with business processes. Consider an example where amobile application collects information on current readings from apatient's blood pressure monitoring system and retrieves data fromanother system that stores historical blood pressure readings of thepatient including additional information such as drugs, readings ofother vital signs, etc. In this instance, the mobile applicationdevelopment software uses the same API call with different parameters toretrieve sensor data, that is, the blood pressure data and process data.The mobile application development software displays the retrieved datato the user to enable better decision making.

The mobile application development software creates 110 the mobileapplication in the launched mobile application creation interface usingone or more of the inserted pre-coded software components and thecreated composite software components, the generated recommendations,the dynamically mapped data, and/or the adaptively configuredapplication programming interfaces. For example, the mobile applicationdevelopment software creates the mobile application using one or morewidgets and/or page layouts that are predefined or dynamically createdby users, the generated recommendations, fields that are dynamicallymapped with the data sources and the new fields that are added to awidget using the drag and drop option, and the adaptively configuredapplication programming interfaces. The adaptively configuredapplication programming interfaces implement, for example, one or moreof a back office integration, a machine to machine convergence, aprocess to machine interaction, gamification, augmented reality, andnear field communication for establishing communication and exchange ofdata between the created mobile application and the user device asdisclosed in the detailed description of FIG. 2. The mobile applicationdevelopment software creates mobile applications of multiple types, forexample, a native type of mobile application developed specifically fora particular type of an operating system of a user device, a web type ofmobile application developed based on web browser technology, and across platform type of mobile application developed to work on anyoperating system of a user device, for example, iOS® of Apple Inc., theAndroid operating system, Blackberry® operating system of Research inMotion Limited, Windows mobile of Microsoft Corporation, the operatingsystem of Google Glass® of Google Inc., iWatch of Apple Inc., etc.

In an embodiment, the mobile application development software displaysreal time data simulations of the mobile application in the launchedmobile application creation interface during each stage of creation ofthe mobile application. For example, the mobile application developmentsoftware displays real time data during the dynamic mapping stage of thedata to be rendered in the mobile application. In another example, themobile application development software displays real time data duringthe creation stage of one or more composite software components. As theuser drags and drops the software components into the launched mobileapplication creation interface, the mobile application developmentsoftware displays real time data simulations of the mobile applicationwith the selected composite software components. The mobile applicationdevelopment software uses the real time data of each stage of theprocess to display the real time data simulations of the mobileapplication in the launched mobile application creation interface.

In an embodiment, the mobile application development software connectsthe created mobile application to multiple backend databases via thenetwork for creating enhanced mobile applications, for example,enterprise grade mobile applications. The connection of the createdmobile application to backend databases enables a user to extend thebackend processes for mobile consumption and deploy the created mobileapplication across different platforms without any coding orprogramming. The connection of the created mobile application to backenddatabases enables non-technical users to develop complicated business tobusiness (B2B) type of mobile applications that require business rulesand data validation. The business rules for creating (B2B) mobileapplications are stored in the backend databases. In an embodiment, themobile application development software also provides direct access toweb services and/or application programming interfaces from a webaddress. The direct access to web services and/or applicationprogramming interfaces from the web address is achieved as long as thedata on the web service is exposed for consumption. In an embodiment,the mobile application development software collects real time usagedata for tracking and categorizing users of the created mobileapplications and for providing 111 real time analytics of users of thecreated mobile applications to target surveys, advertisements, etc., forexample, to cross sell and/or up sell offerings, to provide offerings toretain mobile customers based on the mobile application usage andpreferences, etc. In an embodiment, the mobile application developmentsoftware supports advanced analytics using an in-memory database. Thein-memory database resides on a server hosting the mobile applicationdevelopment software or in a memory unit of the user device or on arandom access memory (RAM). In this embodiment, instead of storing thedata associated with the advanced analytics on a server database, themobile application development software stores the data using acombination of the memory of the user device and the server in-memorydatabases to provide real time analytics.

In an embodiment, the mobile application development software providesmultiple pre-coded software components that are configurable to operatewith other mobile application development software or platforms, amobile enterprise application platform (MEAP), a mobile consumerapplication platform (MCAP) as a bot-on solution, etc. For example,power users can develop mobile applications using the mobile applicationdevelopment software, but further enhancement and deployment can beseamlessly integrated with other mobile application developmentplatforms.

Consider an example where a user wishes to create a mobile applicationusing the mobile application development software. The user selects apre-coded software component such as a widget containing multiple layersof pages, data interaction and business rules and a predefined pagelayout or dynamically creates a widget using the mobile applicationdevelopment software. The mobile application development softwarelaunches the mobile application creation interface. The user thendynamically maps data fields with data sources and adds new data fieldsthat do not exist in the widget in the launched mobile applicationcreation interface. Once the mapping is performed, the user can drag anddrop widgets to assemble the mobile application within the launchedmobile application creation interface. The mobile applicationdevelopment software renders real time data in the launched mobileapplication creation interface while creating the mobile application.The mobile application development software provides support for native,web, and cross platform mobile applications. Once the mobileapplications are created or built and published, for example, on anenterprise application store, end users can download the mobileapplications by accessing the enterprise application store directly fromtheir user devices such as mobile phones.

In an embodiment, the mobile application development platform hostingthe mobile application development software generates revenue bydistributing the created mobile applications, for example, to anenterprise application store for a fee. In another embodiment, end userscan further create or personalize functions of the mobile applicationand workflow according to their personal preferences. For example, whileone user can create a mobile application that displays a “to do” list onhis/her home screen and “leads” near his/her location, another user cancreate a mobile application that displays “to do” lists, events, and newopportunities. These features can be customized while using a mobileapplication on the user device. In another embodiment, business userscan collaboratively create a mobile application with other users usingthe mobile application development software. For example, users can seekinputs from other online business users using the mobile applicationdevelopment software via the network to provide input into mobileapplication design and features, and to add additional characteristicobjects into the mobile application. In another embodiment, a businessuser after designing a mobile application can send the mobileapplication design for approval to his/her manager, for example, via aworkflow process or an electronic mail. Once the manager approves themobile application design, the mobile application development softwaretransmits the approved mobile application for publishing on theenterprise application store.

FIG. 2 exemplarily illustrates a high level architecture diagram of acomputer implemented system 200 for creating a mobile application for auser device 201. The computer implemented system 200 disclosed hereincomprises the mobile application development software 202 accessible bymultiple user devices 201, for example, personal computers, tabletcomputing devices, mobile computers, mobile phones, smart phones, etc.,via a network 208, for example, the internet, a mobile communicationnetwork, etc. The mobile application development software 202 is alsoaccessible by wearable devices 211, for example, Google Glass® of GoogleInc., iWatch of Apple Inc., etc. In an embodiment, the mobileapplication development software 202 is hosted on a mobile applicationdevelopment platform 209 accessible by multiple user devices 201 via thenetwork 208. The mobile application development software 202 hostsmultiple pre-coded software components, for example, smart widgetshybrid applications 203 also referred to as “smart widgets”, executableby at least one processor and insertable into the launched mobileapplication creation interface. The smart widgets 203 are adaptablebased on context and behavioral elements as disclosed in the detaileddescription of FIG. 1. The smart widgets 203 are representations of aset of pre-written codes that perform predefined functions, for example,sales functions. The smart widgets 203 are, for example, programs codedin JavaScript®, that are prepackaged with client JavaScript® librariesby using advanced features of model view controller (MVC) designpatterns. A model view controller is a computer user interface thatseparates a representation of information from the user's interactionwith the information. The mobile application development software 202implements reactive programming for adapting the smart widgets 203 andapplication programming interfaces (APIs) 207.

The mobile application development software 202 further comprises arecommendation engine 205, an enterprise backend application 206,application programming interfaces 207, and a local database 204. Thelocal database 204 stores the smart widgets 203 and their metadata forthe mobile application being created by power users. The mobileapplication development software 202 invokes the recommendation engine205, the enterprise backend application 206, and the applicationprogramming interfaces 207, for example, via a JavaScript ObjectNotation (JSON) based representational state transfer (REST)architecture. The recommendation engine 205 generates one or morerecommendations for addition of one or more characteristic objectsassociated with the mobile application based on a real time analysis anddynamic learning of selective data of similar mobile applicationsdeveloped, for example, based on functionality, an industry, and/or acategory related to the mobile application. The recommendation engine205 comprises an analytics engine 205 b that performs the real timeanalysis for addition of one or more characteristic objects associatedwith the mobile application. The mobile application development software202 provides support for real time analysis and dynamic learning ofselective data of similar mobile applications using in-memory databases,for example, 205 a. The recommendation engine 205 further comprises adatabase 205 a to store the generated recommendations. The enterprisebackend application 206 adaptively configures the applicationprogramming interfaces 207 for a backend integration of the mobileapplication with the user device 201 for launching the mobileapplication on the user device 201. The mobile application developmentsoftware 202 implements application programming interfaces 207 used formachine to machine (M2M) convergence, gamification, augmented reality,near field communication, etc., for backend integration of the mobileapplication with the user device 201. The mobile application developmentsoftware 202 utilizes game design techniques, game thinking, and gamemechanics to enhance non-game contexts in mobile applicationdevelopment. Augmented reality (AR) is a live, direct or indirect, viewof a physical, real world environment whose elements are augmented bycomputer-generated sensory input such as sound, video, graphics, etc.The mobile application development software 202 transmits the createdmobile applications for publishing and distribution, for example, to anenterprise application store 210. End users can download the createdmobile applications by accessing the enterprise application store 210directly from their user devices 201.

FIG. 3 exemplarily illustrates a computer implemented system 200 forcreating a mobile application for a user device 201, showing differentmodules, for example, 205, 205 b, 301, 302, 303, 304, 305, 306, and 307of the mobile application development software 202. The mobileapplication development software 202 is hosted, for example, on a mobileapplication development platform 209. The computer implemented system200 disclosed herein comprises at least one processor, a non-transitorycomputer readable storage medium communicatively coupled to theprocessor, and the mobile application development software 202executable by the processor. The mobile application development software202 is accessible by a user device 201, for example, a mobile phone, alaptop, a tablet computing device, a wearable device 211 such as GoogleGlass® of Google Inc., iWatch of Apple Inc., etc., exemplarilyillustrated in FIG. 2, via a network 208, for example, the internet, amobile communication network, etc. The non-transitory computer readablestorage medium is configured, for example, in the form of a database,for example, 204 to store the modules, for example, 301, 302, 303, 304,305, 306, 307, etc., of the mobile application development software 202.

The mobile application development software 202 comprises pre-codedsoftware components 307, a mapping module 301, a data reception module302, a composite software component creation module 303, a componentinsertion module 304, a recommendation engine 205, a backend integrationmodule 305, a mobile application creation module 306, and an analyticsengine 205 b. In an embodiment, the analytics engine 205 b isincorporated in the recommendation engine 205. The mobile applicationdevelopment software 202 further comprises a mobile application creationinterface 308 and a local database 204. The local database 204 storesthe pre-coded software components 307. The pre-coded software components307 as disclosed in the detailed description of FIG. 1 are encapsulatedin the mobile application creation interface 308 and are adaptable basedon context and behavioral elements. The mapping module 301 dynamicallymaps the data to be rendered in the mobile application with one or moredata sources. In an embodiment, the mapping module 301 dynamicallypopulates the data sources in the mobile application creation interface308 and maps one or more of the data sources to one or more of thepre-coded software components 307 for updating the pre-coded softwarecomponents 307 and/or for creating one or more distinct softwarecomponents based on inputs received from the user device 201. The datareception module 302 receives a selection of one of the preconfigureduser interfaces or one of the predefined user interfaces from the userdevice 201 via the network 208 for launching the mobile applicationcreation interface 308. The data reception module 302 further receivesan indication of each of one or more of the pre-coded softwarecomponents 307 selected by a user via the network 208.

The composite software component creation module 303 creates one or morecomposite software components by combining more than one of distinctsoftware components selected from multiple component sources and/or thepre-coded software components 307. The component insertion module 304inserts the selected pre-coded software components 307 and the createdcomposite software components into the launched mobile applicationcreation interface 308. The recommendation engine 205 generates one ormore recommendations for addition of one or more characteristic objectsassociated with the mobile application based on a real time analysis anddynamic learning of selective data of similar mobile applicationsdeveloped, for example, based on functionality, an industry, and/or acategory related to the mobile application. The recommendation engine205 comprises a database 205 a for storing the generatedrecommendations. The recommendation engine 205 further dynamicallyupdates the generated recommendations for addition of the characteristicobjects associated with the mobile application based on a selection ofone or more supplementary characteristic objects received from the userdevice 201. The backend integration module 305 adaptively configures oneor more application programming interfaces 207 for a backend integrationof the mobile application with the user device 201 for operating themobile application on the user device 201. The backend integrationmodule 305 further connects the created mobile application to multiplebackend databases via the network 208 for creating enhanced mobileapplications.

The mobile application creation module 306 creates the mobileapplication in the launched mobile application creation interface 308using one or more of the inserted pre-coded software components 307 andthe created composite software components, the generatedrecommendations, the dynamically mapped data, and the adaptivelyconfigured application programming interfaces 207. The mobileapplication creation module 306 further displays real time datasimulations of the mobile application in the launched mobile applicationcreation interface 308 during each stage of creation of the mobileapplication. In an embodiment, the mobile application creation module306 transmits the created mobile application to another user specifiedby the user who created the mobile application for approval. Onreceiving approval, the mobile application creation module 306 transmitsthe approved mobile application to an enterprise application store 210for publishing on the enterprise application store 210. The analyticsengine 205 b collects real time usage data for tracking and categorizingusers of the created mobile application and for providing real timeanalytics, for example, to target surveys, advertisements, etc.

FIG. 4 exemplarily illustrates the architecture of a computer system 400employed by the mobile application development software 202 for creatinga mobile application for a user device 201. The mobile applicationdevelopment software 202 of the computer implemented system 200exemplarily illustrated in FIGS. 2-3 employs the architecture of thecomputer system 400 exemplarily illustrated in FIG. 4. The computersystem 400 is programmable using a high level computer programminglanguage. The computer system 400 may be implemented using programmedand purposeful hardware.

The computer system 400 comprises, for example, a processor 401, amemory unit 402 for storing programs and data, an input/output (I/O)controller 403, a network interface 404, a data bus 405, a display unit406, input devices 407, a fixed media drive 408, a removable media drive409 for receiving removable media, output devices 410, etc. The term“processor” refers to any one or more microprocessors, centralprocessing unit (CPU) devices, finite state machines, computers,microcontrollers, digital signal processors, logic, a logic device, anelectronic circuit, an application specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a chip, etc., or any combinationthereof, capable of executing computer programs or a series of commands,instructions, or state transitions. The processor 401 may also beimplemented as a processor set comprising, for example, a generalpurpose microprocessor and a math or graphics co-processor. Theprocessor 401 is selected, for example, from the Intel® processors suchas the Itanium® microprocessor or the Pentium® processors, AdvancedMicro Devices (AMD®) processors such as the Athlon® processor,UltraSPARC® processors, microSPARC® processors, hp® processors,International Business Machines (IBM®) processors such as the PowerPC®microprocessor, the MIPS® reduced instruction set computer (RISC)processor of MIPS Technologies, Inc., RISC based computer processors ofARM Holdings, Motorola® processors, etc. The computer implemented system200 disclosed herein is not limited to the computer system 400 employingthe processor 401. The computer system 400 may also employ a controlleror a microcontroller.

The memory unit 402 is used for storing programs, applications, anddata. For example, the mapping module 301, the data reception module302, the composite software component creation module 303, the componentinsertion module 304, the recommendation engine 205, the backendintegration module 305, the mobile application creation module 306, thepre-coded software components 307, and the analytics engine 205 b, etc.,of the mobile application development software 202 are stored in thememory unit 402 of the computer system 400 of the mobile applicationdevelopment software 202. The memory unit 402 is, for example, a randomaccess memory (RAM) or another type of dynamic storage device thatstores information and instructions for execution by the processor 401.The memory unit 402 also stores temporary variables and otherintermediate information used during execution of the instructions bythe processor 401. The computer system 400 further comprises a read onlymemory (ROM) or another type of static storage device that stores staticinformation and instructions for the processor 401.

The I/O controller 403 controls input actions and output actionsperformed by the mobile application development software 202. Thenetwork interface 404 enables connection of the computer system 400 tothe network 208. For example, the computer system 400 employed by themobile application development software 202 connects to the network 208via the network interface 404. In an embodiment, the network interface404 is provided as an interface card also referred to as a line card.The network interface 404 comprises, for example, one or more of aninfrared (IR) interface, an interface implementing Wi-Fi® of theWireless Ethernet Compatibility Alliance, Inc., a universal serial bus(USB) interface, a FireWire® interface of Apple, Inc., an Ethernetinterface, a frame relay interface, a cable interface, a digitalsubscriber line (DSL) interface, a token ring interface, a peripheralcontroller interconnect (PCI) interface, a local area network (LAN)interface, a wide area network (WAN) interface, interfaces using serialprotocols, interfaces using parallel protocols, and Ethernetcommunication interfaces, asynchronous transfer mode (ATM) interfaces, ahigh-speed serial interface (HSSI), a fiber distributed data interface(FDDI), interfaces based on transmission control protocol (TCP)/internetprotocol (IP), interfaces based on wireless communications technologysuch as satellite technology, radio frequency (RF) technology, nearfield communication, etc. The data bus 405 permits communicationsbetween the modules, for example, 301, 302, 303, 304, 305, 306, 307,205, 205 b, etc., of the mobile application development software 202.

The display unit 406 displays information, display interfaces, userinterface elements such as data fields, text boxes, windows, iconsrepresenting the pre-coded software components 307, etc. The displayunit 406 comprises, for example, a liquid crystal display, a plasmadisplay, an organic light emitting diode (OLED) based display, etc. Theinput devices 407 are used for inputting data into the computer system400. For example, a user may enter a selection of one of thepreconfigured user interfaces or the predefined user interfaces usingthe input devices 407. The input devices 407 are, for example, akeyboard such as an alphanumeric keyboard, a microphone, a joystick, apointing device such as a computer mouse, a touch pad, a light pen, aphysical button, a pointing device, a touch sensitive display device, atrack ball, a pointing stick, any device capable of sensing a tactileinput, etc.

Computer applications and programs are used for operating the computersystem 400. The programs are loaded onto the fixed media drive 408 andinto the memory unit 402 of the computer system 400 via the removablemedia drive 409. In an embodiment, the computer applications andprograms may be loaded directly via the network 208. Computerapplications and programs are executed by double clicking a related icondisplayed on the display unit 406 using one of the input devices 407.The output devices 410 output the results of operations performed by themobile application development software 202. For example, the mobileapplication development software 202 displays real time data simulationsof the mobile application in the launched mobile application creationinterface 308 during each stage of creation of the mobile applicationusing the output devices 410.

The processor 401 executes an operating system, for example, the Linux®operating system, the Unix® operating system, any version of theMicrosoft® Windows® operating system, the Mac OS of Apple Inc., the IBM®OS/2, VxWorks® of Wind River Systems, inc., QNX Neutrino® developed byQNX Software Systems Ltd., Palm OS®, the Solaris operating systemdeveloped by Sun Microsystems, Inc., the Android operating system,Windows Phone™ operating system of Microsoft Corporation, BlackBerry®operating system of Research in Motion Limited, the iOS® operatingsystem of Apple Inc., the Symbian® operating system of SymbianFoundation Limited, an operating system of a wearable device 211, etc.The computer system 400 employs the operating system for performingmultiple tasks. The operating system is responsible for management andcoordination of activities and sharing of resources of the computersystem 400. The operating system further manages security of thecomputer system 400, peripheral devices connected to the computer system400, and network connections. The operating system employed on thecomputer system 400 recognizes, for example, inputs provided by theusers using one of the input devices 407, the output display, files, anddirectories stored locally on the fixed media drive 408, for example, ahard drive. The operating system on the computer system 400 executesdifferent programs using the processor 401. The processor 401 and theoperating system together define a computer platform for whichapplication programs in high level programming languages are written.

The processor 401 retrieves instructions for executing the modules, forexample, 301, 302, 303, 304, 305, 306, 307, 205, 205 b, etc., of themobile application development software 202 from the memory unit 402. Aprogram counter determines the location of the instructions in thememory unit 402. The program counter stores a number that identifies thecurrent position in the program of each of the modules, for example,301, 302, 303, 304, 305, 306, 307, 205, 205 b, etc., of the mobileapplication development software 202. The instructions fetched by theprocessor 401 from the memory unit 402 after being processed aredecoded. The instructions are stored in an instruction register in theprocessor 401. After processing and decoding, the processor 401 executesthe instructions. For example, the mapping module 301 definesinstructions for dynamically mapping the data to be rendered in themobile application with one or more data sources. The mapping module 301also defines instructions for dynamically populating the data sources inthe mobile application creation interface 308 and mapping one or more ofthe data sources to one or more of the pre-coded software components 307for updating the pre-coded software components 307 and/or creatingdistinct software components based on inputs received from the userdevice 201. The data reception module 302 defines instructions forreceiving a selection of one of the preconfigured user interfaces or thepredefined user interfaces from the user device 201 via the network 208for launching the mobile application creation interface 308.Furthermore, the data reception module 302 defines instructions forreceiving an indication of each of the selected pre-coded softwarecomponents 307 from the user device 201 via the network 208. Thecomposite software component creation module 303 defines instructionsfor creating one or more composite software components by combining morethan one of distinct software components selected from multiplecomponent sources and/or the pre-coded software components 307.

The component insertion module 304 defines instructions for insertingone or more of the selected pre-coded software components 307 and thecreated composite software components into the launched mobileapplication creation interface 308. The recommendation engine 205defines instructions for generating one or more recommendations foraddition of one or more characteristic objects associated with themobile application based on a real time analysis and dynamic learning ofselective data of similar mobile applications developed, for example,based on functionality, an industry, and/or a category related to themobile application. Furthermore, the recommendation engine 205 definesinstructions for dynamically updating the generated recommendations foraddition of the characteristic objects associated with the mobileapplication based on a selection of one or more supplementarycharacteristic objects received from the user device 201.

The backend integration module 305 defines instructions for adaptivelyconfiguring one or more application programming interfaces 207 for abackend integration of the mobile application with the user device 201for launching the mobile application on the user device 201. The mobileapplication creation module 306 defines instructions for creating themobile application in the launched mobile application creation interface308 using one or more of the inserted pre-coded software components 307and the created composite software components, the generatedrecommendations, the dynamically mapped data, and the adaptivelyconfigured application programming interfaces 207. Furthermore, themobile application creation module 306 defines instructions fordisplaying real time data simulations of the mobile application in thelaunched mobile application creation interface 308 during each stage ofcreation of the mobile application. The backend integration module 305defines instructions for connecting the created mobile application tomultiple backend databases via the network 208 for creating enhancedmobile applications. The analytics engine 205 b defines instructions forcollecting real time usage data for tracking and categorizing users ofthe created mobile application and providing real time analytics, forexample, to target surveys, advertisements, etc.

The processor 401 of the computer system 400 employed by the mobileapplication development software 202 retrieves the instructions definedby the mapping module 301, the data reception module 302, the compositesoftware component creation module 303, the component insertion module304, the recommendation engine 205, the backend integration module 305,the mobile application creation module 306, the analytics engine 205 b,etc., of the mobile application development software 202, and executesthe instructions, thereby performing one or more processes defined bythose instructions.

At the time of execution, the instructions stored in the instructionregister are examined to determine the operations to be performed. Theprocessor 401 then performs the specified operations. The operationscomprise arithmetic operations and logic operations. The operatingsystem performs multiple routines for performing a number of tasksrequired to assign the input devices 407, the output devices 410, andmemory for execution of the modules, for example, 301, 302, 303, 304,305, 306, 307, 309, 205, 205 b, etc., of the mobile applicationdevelopment software 202. The tasks performed by the operating systemcomprise, for example, assigning memory to the modules, for example,301, 302, 303, 304, 305, 306, 307, 309, 205, 205 b, etc., of the mobileapplication development software 202, and to data used by the mobileapplication development software 202, moving data between the memoryunit 402 and disk units, and handling input/output operations. Theoperating system performs the tasks on request by the operations andafter performing the tasks, the operating system transfers the executioncontrol back to the processor 401. The processor 401 continues theexecution to obtain one or more outputs. The outputs of the execution ofthe modules, for example, 301, 302, 303, 304, 305, 306, 307, 309, 205,205 b, etc., of the mobile application development software 202 aredisplayed to the user on the display unit 406.

For purposes of illustration, the detailed description refers to themobile application development software 202 being run locally on thecomputer system 400; however the scope of the computer implementedmethod and system 200 disclosed herein is not limited to the mobileapplication development software 202 being run locally on the computersystem 400 via the operating system and the processor 401, but may beextended to run remotely over the network 208 by employing a web browserand a remote server, a mobile phone, or other electronic devices. One ormore portions of the computer system 400 may be distributed across oneor more computer systems (not shown) coupled to the network 208.

Disclosed herein is also a computer program product comprising anon-transitory computer readable storage medium that stores computerprogram codes comprising instructions executable by at least oneprocessor 401 for creating a mobile application for a user device 201.As used herein, the term “non-transitory computer readable storagemedium” refers to all computer readable media, for example, non-volatilemedia such as optical discs or magnetic disks, volatile media such as aregister memory, a processor cache, etc., and transmission media such aswires that constitute a system bus coupled to the processor 401, exceptfor a transitory, propagating signal.

The computer program product comprise a first computer program code fordynamically mapping data to be rendered in the mobile application withone or more data sources; a second computer program code for receiving aselection of one of the preconfigured user interfaces or the predefineduser interfaces from the user device 201 via the network 208 forlaunching the mobile application creation interface 308; a thirdcomputer program code for receiving an indication of each of theselected pre-coded software components 307 from the user device 201 viathe network 208; a fourth computer program code for creating one or morecomposite software components by combining more than one of distinctsoftware components selected from multiple component sources and thepre-coded software components 307; a fifth computer program code forinserting one or more of the pre-coded software components 307 and thecreated composite software components into the launched mobileapplication creation interface 308; a sixth computer program code forgenerating one or more recommendations for addition of one or morecharacteristic objects associated with the mobile application based on areal time analysis and dynamic learning of selective data of similarmobile applications developed, for example, based on functionality, anindustry, and/or a category related to the mobile application; a seventhcomputer program code for adaptively configuring one or more applicationprogramming interfaces 207 for a backend integration of the mobileapplication with the user device 201 for operating the mobileapplication on the user device 201; and an eighth computer program codefor creating the mobile application in the launched mobile applicationcreation interface 308 using one or more of the inserted pre-codedsoftware components 307 and the created composite software components,the generated recommendations, the dynamically mapped data, and theadaptively configured application programming interfaces 207. Thecomputer program product disclosed herein further comprises one or moreadditional computer program codes for performing additional steps thatmay be required and contemplated for creating the mobile application forthe user device 201. In an embodiment, a single piece of computerprogram code comprising computer executable instructions performs one ormore steps of the computer implemented method disclosed herein forcreating the mobile application for the user device 201.

The computer program codes comprising computer executable instructionsare embodied on the non-transitory computer readable storage medium. Theprocessor 401 of the computer system 400 retrieves these computerexecutable instructions and executes them. When the computer executableinstructions are executed by the processor 401, the computer executableinstructions cause the processor 401 to perform the steps of thecomputer implemented method for creating the mobile application for theuser device 201.

FIG. 5 exemplarily illustrates a low level architecture of the computerimplemented system 200 exemplarily illustrated in FIGS. 2-3, forcreating a mobile application 511 for a user device 201. The low levelarchitecture of the computer implemented system 200 outlinesinteractions between different components of the mobile applicationdevelopment software 202. The low level architecture comprises a backoffice component 509, client databases 506, 507, etc., an applicationserver, a security component, a web application component, an enterpriseapplication store 210, and the analytics engine 205 b exemplarilyillustrated in FIGS. 2-3. The mobile application development software202 creates a mobile application 511 for a user device 201 as disclosedin the detailed description of FIG. 1. The recommendation engine 205that generates one or more recommendations for addition of one or morecharacteristic objects associated with the mobile application 511 basedon a real time analysis and dynamic learning of selective data ofsimilar mobile applications resides in the back office component 509.The recommendation engine 205 is implemented, for example, in a cloudcomputing environment and is connected to other resources or nodes inthe computer implemented system 200 to capture real time data. Themobile application development software 202 supports advanced analyticsusing the analytics engine 205 b that gathers 512 and stores real timeusage data, for example, an in-memory database 513. The in-memorydatabase 513 resides in the application server or in the memory of theuser device memory or on the random access memory (RAM). The mobileapplication development software 202 stores the real time usage datausing a combination of the memory of the user device 201 and the serverin-memory databases 514.

The backend integration module 305 in the back office component 509, inaddition to adaptively configuring application programming interfaces207 for a backend integration of the mobile application 511 with theuser device 201, also performs user management 509 a. The back officecomponent 509 stores user information, for example, user behavior forperforming user management 509 a. The mobile application developmentsoftware 202 communicates with the client databases 506 and 507 andthird party application programming interfaces (APIs) 508 for storingthe created mobile applications 511, the generated recommendations, etc.The application server handles the operations between the user device201, the back office component 509 and the client databases 506, 507,etc. For example, the mobile application development software 202 incommunication with the application server handles compilation of mobileapplications 511 based on user selections, connection of the createdmobile applications 511 to backend databases, etc. The applicationserver also communicates with the enterprise application (app) store 210exemplarily illustrated in FIGS. 2-3. The application server providesbundled distribution service packages in the form of top packages 503that are stored in a top package database 504.

The client services provided by the application server and the securitycomponent are mapped and stored in the top package database 504. Theclient service mappings 504 a are then bundled with the created mobileapplication 511. The security services 502 allow secure authorizationvia an open standard for authorization (OAUTH) protocol for access ofservices 505 a provided by the clients 505. A client web application 501is created using client side web technologies and the client servicesare mapped and bundled with the mobile application 511 in the form oftop packages 510. The created mobile applications 511 are distributed toend users via an online marketplace, for example, the enterpriseapplication store 210.

FIGS. 6A-6E exemplarily illustrate screenshots showing softwarecomponents encapsulated in a mobile application creation interface 308.The software components comprise the pre-coded software components 307and/or the composite software components as disclosed in the detaileddescription of FIG. 1. FIG. 6A exemplarily illustrates softwarecomponents, for example, smart widgets 203 a, 203 b, and 203 c, microwidgets, etc., that are ready to be inserted into the mobile applicationcreation interface 308. The mobile application development software 202,exemplarily illustrated in FIGS. 2-3, provides a sample list of softwarecomponents, for example, smart widgets 203 a, 203 b, and 203 c, microwidgets, etc., that can be used by the user for the creation of themobile application such as a mobile web application, a hybridapplication, etc. For example, the mobile application developmentsoftware 202 provides a sample list of customer relationship management(CRM) smart widgets such as CRM marketing 203 a, CRM service 203 b,order management 203 c, etc., to the user as exemplarily illustrated inFIG. 6A. The software components are inserted into the mobileapplication creation interface 308, for example, on a phone emulator, atablet emulator, etc., by the user using the drag and drop optionprovided by the mobile application development software 202. In anembodiment, users can drag and drop industry specific widgets, forexample, 203 a, 203 b, and 203 c to make functionality and data of themobile application more industry specific such as financials, hightechnology, etc. In an example, by dragging and dropping a sales widgetinto the mobile application creation interface 308, the mobileapplication development software 202 populates most of the fields,underlying functionality, and application programming interfaces (APIs)207 for backend integration required to launch a sales application. Themobile application development software 202 enables the user to alsorename a field name and also add additional fields in the mobileapplication creation interface 308. The mobile application developmentsoftware 202 also enables the user to combine different or complimentarywidgets to create mashup applications.

FIG. 6B exemplarily illustrates software components inserted into themobile application creation interface 308 of the mobile application. Themobile application development software 202 inserts a smart widgetselected by the user, for example, the smart widget for CRM marketing203 a, into the launched mobile application creation interface 308. Thesmart widget for CRM marketing 203 a displays data, for example, anaccount name, an address, a contact person, an industry, etc.

FIGS. 6C-6D exemplarily illustrate software components comprisinghierarchical layers of data. The mobile application development software202 inserts pre-coded software components 307 and/or composite softwarecomponents, for example, smart widgets 203 a, 203 b, and 203 cexemplarily illustrated in FIGS. 6A-6B, mashup applications, etc.,selected by the user in the launched mobile application creationinterface 308. Based on the data mapping disclosed in the detaileddescription of FIG. 1 and FIG. 8, each of the software components showsdifferent data sets. The inserted pre-coded software components 307, forexample, an accounts widget, a leads widget, etc., comprise hierarchicallayers of data. That is, each widget can contain multiple layers ofpages of data. The fields shown on a page is defined in the mappingsdynamically mapped by the user. The same widget shows different datasets based on the mappings. As exemplarily illustrated in FIG. 6C, theaccounts widget comprises fields such as “CSC Second”, “Cisco up”,“Intel”, etc., and the leads widget comprises fields such as “John Ted”,“Mike Johnson”, “Lara Mihanna”, etc. By clicking on the “CSC Second”field of the accounts widget, the user is navigated to a new pagecomprising fields, for example, first name, customer type, industry,website, phone, rating, etc., as exemplarily illustrated in FIG. 6D. Themobile application development software 202 defines business rules, forexample, where users can select from only existing customer types.

FIG. 6E exemplarily illustrates software components recommended by themobile application development software 202 for creation of a mobileapplication. Consider an example where a user developing a marketingmobile application includes widgets such as CRM marketing 203 a,campaigns 601, account 602, etc., in the marketing application. Therecommendation engine 205 of the mobile application development software202 generates one or more recommendations for addition of one or morecharacteristic objects associated with the marketing mobile application.As exemplarily illustrated in FIG. 6E, the recommendation engine 205generates a recommendation 608 for adding a leads widget 603, anopportunity widget 604, etc., into the marketing mobile application. Therecommendation 608 recites, for example, that users who developedmarketing applications also included leads information in their mobileapplications. Based on the type of mobile applications, for example,sales, marketing, etc., the recommendation engine 205 recommend widgets,for example, CRM sales 605, procurement 606, CRM dashboard 607, etc.,for addition into the mobile application.

FIGS. 6F-6G exemplarily illustrate screenshots showing creation of amobile application for a user device 201 exemplarily illustrated inFIGS. 2-3. FIG. 6F exemplarily illustrates a display page provided bythe mobile application development software 202 for creating a mobileapplication. The mobile application development software 202 providesmultiple pre-coded software components 307, for example, a leads widget603, an accounts widget 602, a contacts widget 609, an opportunitywidget 604, etc., as exemplarily illustrated in FIG. 6F, on the displaypage to a user developing, for example, a sales management application.The user, based on his/her requirement, selects and inserts thepre-coded software components 307, for example, an accounts widget 602,a leads widget 603, etc., by dragging and dropping the pre-codedsoftware components 307 into the mobile application creation interface308 for creating the sales management application.

FIG. 6G exemplarily illustrates a display page provided by the mobileapplication development software 202 for accessing and downloading thecreated mobile application to a user device 201. The mobile applicationdevelopment software 202 provides access to the created mobileapplications on the display page for digital distribution to end users.The mobile application development software 202 provides a link to anenterprise application store 210 exemplarily illustrated in FIGS. 2-3 onthe display page. When an end user clicks the link to the enterpriseapplication store 210 on the display page, the mobile applicationdevelopment software 202 displays the created mobile applicationsavailable at the enterprise application store 210. An end user whowishes to make use of a created mobile application, for example, a salesmanagement application, can download the sales management applicationfrom the enterprise application store 210 directly onto the user device201.

FIG. 7 exemplarily illustrates a process flow diagram showing the stepsperformed by the mobile application development software 202 forcreating a mobile application for a user device 201 exemplarilyillustrated in FIGS. 2-3. The mobile application development software202 offers creation and development of the mobile application as aservice. The mobile application development software 202 enables a userto register 701 for the service if the user has not registered already,or login to the mobile application development software 202 using a useridentifier and a password. The mobile application development software202 then connects 702 to the relevant databases 703, 704, and 705comprising data from multiple data sources. The user selects 708 aplatform, for example, iOS® of Apple Inc., Android of Google Inc., etc.The mobile application development software 202 dynamically creates ormodifies 706 mappings of the data to be rendered in the mobileapplication with one or more of multiple data sources based on theselected platform, for example, iOS® of Apple Inc., Android of GoogleInc., etc.

The mobile application development software 202 provides pre-codedsoftware components 307, for example, smart widgets 203, micro widgets,etc., that allow the user to create the mobile application. In anembodiment, the mobile application development software 202 enables auser to create 707 dynamic software components, for example, widgetsbased on the data. The mobile application development software 202 thenallows the user to drag and drop 711 one or more pre-coded softwarecomponents 307 and/or composite software components, for example, smartwidgets 203 to create the mobile applications using the drag and dropoption. For example, a user selects the smart widgets 203 to be added tothe mobile application creation interface 308 exemplarily illustrated inFIG. 3, which may be prebuilt or customized by the user, and drops theselected smart widgets 203 by dragging the smart widgets 203 to themobile application creation interface 308. The mobile applicationdevelopment software 202 generates recommendations 710 to the user whoinitiates creation of the mobile application for addition ofcharacteristic objects, that is, additional features to be included inthe mobile application. Consider an example where a user developing acalendar application decides to include a date, a time, and a time zonein the mobile application. The mobile application development software202 recommends, for example, electronic mail (email) integration to thecalendar application.

The mobile application development software 202 enables backendintegration of the mobile application with the user device 201 viaapplication programming interfaces (APIs) 207. The mobile applicationdevelopment software 202 invokes 709 relevant APIs 207, for example, formachine to machine convergence, gamification, augmented reality, etc.,in communication with the systems and/or databases of the back officecomponent 509. The mobile application development software 202configures the APIs 207 for each organization, as the types of userdevices 201 used are different for each organization. The mobileapplication development software 202 comprises an administration module(not shown) that allows organizations to provide an enterpriseinformation technology (IT) landscape such as the type of IT systems,for example, Oracle, Sybase, SAP, etc., used. Once the APIs 207 areconfigured by the mobile application development software 202, the APIs207 for the backend systems become active and are used while developingthe mobile application. In an embodiment, the APIs 207 of the mobileapplication development software 202 are preconfigured to connect tovarious data sources. The mobile application development software 202creates the mobile application in the mobile application creationinterface 308 by using the inserted pre-coded software components 307and the composite software components, the generated recommendations,the dynamically mapped data, and the adaptively configured applicationprogramming interfaces 207. The developers, using a software developmentkit (SDK) of the mobile application development software 202, launch 712a mobile development environment and enable power users to compile 713the created mobile application and test 714 the created mobileapplication.

FIG. 8 exemplarily illustrates a screenshot showing dynamic mapping ofdata to be rendered in a mobile application. The mobile applicationdevelopment software 202 exemplarily illustrated in FIGS. 2-3 enablesusers to dynamically map the data to be rendered in the mobileapplication, add new fields, and add new software components such aswidgets as exemplarily illustrated in FIG. 8. A user developing a mobileapplication, for example, a sales application logs into the mobileapplication development software 202. The user selects pre-codedsoftware components 307 and/or composite software components forcreating the mobile application. The pre-coded software components 307and the composite software components are stored, for example, in alocal database 204 exemplarily illustrated in FIGS. 2-3, a backenddatabase, or a remote database. The pre-coded software components 307and the composite software components comprise one or more fields ofdata. For example, a sales force widget comprises fields such as accounthistory, address, etc., with sub fields “id”, “owner id”, “name”,“created date”, “created by id”, “account name”, “customer type”,“industry”, “rating”, “phone”, “website”, etc. When a user drags anddrops the sales force widget on the mobile application creationinterface 308 of the user device 201 exemplarily illustrated in FIG. 3,the mobile application development software 202 renders only the mappedfields, for example, “id”, “account name”, “customer type”, “industry”,“rating”, “phone”, “website”, etc., in the created mobile application.The mapped fields are chosen based on the user requirement. For example,if a user wants to display only 5 fields of the sales widget in thecreated mobile application, the mobile application development software202 maps only the 5 fields of the sales widget selected by the user.

FIG. 9 exemplarily illustrates a process flow diagram showing the stepsperformed by the mobile application development software 202 exemplarilyillustrated in FIGS. 2-3, for creating a mobile application for a userdevice 201 and deploying the created mobile application in an enterpriseapplication store 210. The mobile application development software 202hosted on the mobile application development platform 209 enables apower user to register 701 with the service if the power user has notalready registered, or login to the mobile application developmentsoftware 202 with a user identifier and a password. The mobileapplication development software 202 launches the mobile applicationcreation interface 308 exemplarily illustrated in FIG. 3, using aprebuilt user interface or a custom built user interface 901. If themobile application creation interface 308 is launched using a prebuiltuser interface, the mobile application development software 202 enablesthe user to select 902 an application type for creation of the mobileapplication, for example, a business-to-business (B2B) type, abusiness-to-consumer (B2C) type, an industry application type, etc. Themobile application development software 202 then allows the user to dragand drop 711 one or more pre-coded software components 307 and/orcomposite software components, for example, smart widgets 203 to createthe mobile application using the drag and drop option. In an example, auser selects the smart widgets 203 to be added to the mobile applicationand drops the selected smart widgets 203 by dragging the smart widgets203 to the mobile application creation interface 308. For a custom builtuser interface, the mobile application development software 202 enablesthe user to select 904 the layout, user interface, and application type.The mobile application development software 202 then allows the user todrag and drop 711 one or more pre-coded software components 307 and/orcomposite software components, for example, smart widgets 203 to createthe mobile application using the drag and drop option. The user canrefine 903 and make minor modifications to the layout of the userinterface by selecting a user interface pattern. The layouts of the userinterface comprise, for example, a springboard, a list, a tab, ametaphor, a dashboard, etc. The user may then select micro widgets thatare designed at an entity level and can be combined to develop a fullyfunctional mobile application. For example, a sales based mobileapplication requires micro widgets such as account information,contacts, leads, opportunities, etc. The user can select these microwidgets to develop a customized enterprise mobile application.

The recommendation engine 205 of the mobile application developmentsoftware 202 generates recommendations for the user developing themobile application for addition of characteristic objects associatedwith the mobile application. The recommendation engine 205 recommends710 micro widgets or widgets based on a method disclosed in the detaileddescription of FIG. 12, context, and usage. The mobile applicationdevelopment software 202 enables backend integration of the mobileapplication with the user device 201 via application programminginterfaces (APIs) 207. For example, the mobile application developmentsoftware 202, in communication with the back office component 509comprising back office systems and/or databases, invokes 709 therelevant APIs 207 such as machine to machine convergence, gamification,augmented reality, etc., for achieving backend integration of the mobileapplication with the user device 201. Once the APIs 207 are configuredby the mobile application development software 202, the APIs 207 for thebackend systems become active and are used while creating the mobileapplication. In an embodiment, the APIs 207 of the mobile applicationdevelopment software 202 are preconfigured to connect to various datasources. In another embodiment, the mobile application developmentsoftware 202 enhances the mobile application features by allowing theuser to integrate with additional APIs 207 such as social, near fieldcommunication, etc.

The mobile application development software 202 creates the mobileapplication in the mobile application creation interface 308 by usingthe inserted pre-coded software components 307 and the compositesoftware components, the generated recommendations, the dynamicallymapped data, and the adaptively configured application programminginterfaces 207. The user refines 903 the created mobile application interms of layout and the user interface. The developers, using a softwaredevelopment kit (SDK) of the mobile application development software202, launch 712 a mobile development environment and enable the mobileapplication development platform 209 to compile the created mobileapplication and test 714 the created mobile application. The createdmobile application can be packaged into binary files for differentplatforms such as iOS® of Apple Inc., Android of Google Inc., anddeployed 905, for example, on an internal enterprise application store210, public stores such as Apple Inc.'s appstore, Google Inc.'s playstore, etc. An end user 906 can access the created mobile applicationfrom the internal enterprise application store 210, public stores, etc.

FIG. 10 exemplarily illustrates a process flow diagram showing the stepsperformed by the recommendation engine 205 of the mobile applicationdevelopment software 202 exemplarily illustrated in FIGS. 2-3. Therecommendation engine 205 generates recommendations using the analyticsengine 205 b, also referred to as an “awareness engine”, as disclosed inthe detailed description of FIG. 12, for addition of characteristicobjects associated with the mobile application. The recommendationengine 205 recommends features to be included in the mobile applicationbased on algorithms and rules set by an algorithms and rules engine1001, real time data analysis and dynamic learning of selective data ofthe industry and other similar mobile applications performed by theanalytics engine 205 b. The recommendation engine 205, in communicationwith the analytics engine 205 b, uses the algorithms and rules, forexample, an association between software components such as the smartwidgets 203, micro widgets, etc., and initial recommendations, and alsouses anonymous real time data from all instances collected by theanalytics engine 205 b in order to recommend specific nuanced featuresfor the mobile application. For example, the algorithms and rules engine1001 of the recommendation engine 205 recommends specific widgets andmicro widgets to be included in the mobile application to the mobileapplication development software 202 being offered as a service 1002.The analytics engine 205 b analyzes the specific recommendations andsuggests new rules and/or associations. A manual review 1003 of thesuggested new rules and/or associations is performed and the user mayaccept or reject the suggested new rules and/or associations. Therecommendation engine 205 analyzes and reviews data from various sourcesand updates the recommendations based on the data collected. Forexample, a user developing a shopping mobile application decides toinclude product information, a store locator, and an inventory lookup.The recommendation engine 205 is configured to recommend other featuresbased on the usage from other users. In this example, the recommendationengine 205 may recommend the user to include a price lookupfunctionality based on other similar mobile applications developed inthe same industry.

FIG. 11 exemplarily illustrates a process flow diagram showing the stepsperformed by the backend integration module 305 of the mobileapplication development software 202 exemplarily illustrated in FIG. 3.The backend integration module 305 is also referred to as an applicationprogramming interface engine or an enterprise backend application 206.The backend integration module 305 enables standard backend integrationvia the APIs 207 and does not require additional programming. Forexample, the APIs 207 are used for backend integration with othersystems, for example, back office systems such as sensors 1102,augmented reality, near field communication, social, gamification, usermanagement, security, etc. The backend integration module 305 alsoenables the APIs 207 that can adapt their behavior based on the type ofconnection such as sensor 1102, data 1103, process 1101, etc. The APIs207 can minimize data payload and adapt the format to communicate withsensors 1102, machine to machine (M2M), as well as databases. The APIs207 also enable process to machine (P2M) communication and M2M socialnetworking. M2M APIs 207 allow users to communicate with sensors 1102which share and exchange data with other similar sensors and adopt theirbehavior accordingly.

FIG. 12 exemplarily illustrates a process flow diagram showing the stepsperformed by the recommendation engine 205 using the analytics engine205 b of the mobile application development software 202 exemplarilyillustrated in FIGS. 2-3. The recommendation engine 205 implements analgorithm that has many to many relationships between a mobileapplication and characteristic objects using the analytics engine 205 b.For example, a sales mobile application 1202 of a sales application typeis associated with micro widgets such as accounts 1204, contactinformation 1205, sales leads 1206, etc. A marketing mobile application1203 of a marketing application type is associated with micro widgetssuch as contact information 1205, sales leads 1206, campaigns 1207, etc.The analytics engine 205 b, also referred to as an “awareness engine”,performs a real time analysis of other similar mobile applicationsdeveloped by other users to recommend new associations based on the realtime analysis. A user developing, for example, a sales mobileapplication 1202 and a marketing mobile application 1203 would obtainrecommendations based on the association of the sales mobile application1202 and the marketing mobile application 1203 with their respectivemicro widgets. The recommendation engine 205 updates the associationsbased on the real time analysis and dynamic learning of selective dataof other similar applications developed by other users. The analyticsengine 205 b recommends 1201 a new rule to include, for example, acampaigns micro widget 1207 to the marketing mobile application 1203.The recommendation engine 205 allows for a manual review 1003 orverification of every new association rule prior to generation of therecommendations. Based on the manual review 1003, the recommendation ofincluding, for example, a campaigns micro widget 1207 to the marketingmobile application 1203 is either accepted or rejected by the user.

FIG. 13 exemplarily illustrates the computer implemented system 200comprising the mobile application development software 202 hosted in acloud computing environment accessible by power users 1301 anddevelopers for creating mobile applications for end users 906. Themobile application development software 202 employs a cloud computingplatform provided by cloud computing vendors, for example, Amazon® ofAmazon Technologies, Inc. Windows Azure® of Microsoft Corporation,Rackspace® of Rackspace US, Inc., etc. The mobile applicationdevelopment software 202 enables power users 1301 to change the layoutof pre-coded software components 307, for example, the smart widgets 203exemplarily illustrated in FIG. 2, or the micro widgets. For example,when a widget is dragged and dropped in the mobile application creationinterface 308 exemplarily illustrated in FIG. 3 and FIGS. 6A-6F, thepower users 1301 can change the layout from a list menu to a tab menu orany other design pattern such as a springboard, a gallery, a metaphor, amega menu, etc. In an embodiment, the pre-coded software components 307are configurable for allowing developers to generate supplementarysoftware components such as smart widgets 203 and micro widgets usingthe mobile application development software 202. For example, the mobileapplication development software 202 allows independent developers touse a software development kit (SDK) 1302 of the mobile applicationdevelopment software 202 to develop smart widgets 203, micro widgets,etc., in order to adopt the mobile application development software 202on a mass scale. In another example, the mobile application developmentsoftware 202 allows independent developers to develop a consumer relatedwidget, an enterprise focused widget, etc., that can be leveraged byusers to add more features to either their existing mobile applicationor to build a new mobile application. The mobile application developmentsoftware 202 also allows partners, enterprise customers, etc., to use asoftware development kit (SDK) 1303 of the mobile applicationdevelopment software 202 to create, for example, enterprise grade mobileapplications. The end users 906 can access the created mobileapplication from the internal enterprise application store 210, publicstores, etc., via their user devices 201.

It will be readily apparent that the various methods, algorithms, andcomputer programs disclosed herein may be implemented on computerreadable media appropriately programmed for general purpose computers,computing devices, and wearable devices. As used herein, the term“computer readable media” refers to non-transitory computer readablemedia that participate in providing data, for example, instructions thatmay be read by a computer, a processor or a similar device.Non-transitory computer readable media comprise all computer readablemedia, for example, non-volatile media, volatile media, and transmissionmedia, except for a transitory, propagating signal. Non-volatile mediacomprise, for example, optical discs or magnetic disks and otherpersistent memory volatile media including a dynamic random accessmemory (DRAM), which typically constitutes a main memory. Volatile mediacomprise, for example, a register memory, a processor cache, a randomaccess memory (RAM), etc. Transmission media comprise, for example,coaxial cables, copper wire, fiber optic cables, modems, etc., includingwires that constitute a system bus coupled to a processor, etc. Commonforms of computer readable media comprise, for example, a floppy disk, aflexible disk, a hard disk, magnetic tape, a laser disc, a Blu-rayDisc®, any magnetic medium, a compact disc-read only memory (CD-ROM), adigital versatile disc (DVD), any optical medium, a flash memory card,punch cards, paper tape, any other physical medium with patterns ofholes, a random access memory (RAM), a programmable read only memory(PROM), an erasable programmable read only memory (EPROM), anelectrically erasable programmable read only memory (EEPROM), a flashmemory, any other memory chip or cartridge, or any other medium fromwhich a computer can read.

The computer programs that implement the methods and algorithmsdisclosed herein may be stored and transmitted using a variety of media,for example, the computer readable media in a number of manners. In anembodiment, hard-wired circuitry or custom hardware may be used in placeof, or in combination with, software instructions for implementation ofthe processes of various embodiments. Therefore, the embodiments are notlimited to any specific combination of hardware and software. Ingeneral, the computer program codes comprising computer executableinstructions may be implemented in any programming language. Someexamples of programming languages that can be used comprise C, C++, C#,Java®, JavaScript®, Fortran, Ruby, Pascal, Perl®, Python®, VisualBasic®, MATLAB®, etc. Other object-oriented, functional, scripting,and/or logical programming languages may also be used. The computerprogram codes or software programs may be stored on or in one or moremediums as object code. Various aspects of the method and systemdisclosed herein may be implemented in a non-programmed environmentcomprising documents created, for example, in a hypertext markuplanguage (HTML), an extensible markup language (XML), or other formatthat render aspects of a graphical user interface (GUI) or perform otherfunctions, when viewed in a visual area or a window of a browserprogram. Various aspects of the method and system disclosed herein maybe implemented as programmed elements, or non-programmed elements, orany suitable combination thereof. The computer program product disclosedherein comprises computer executable instructions embodied in anon-transitory computer readable storage medium, wherein the computerprogram product comprises one or more computer program codes forimplementing the processes of various embodiments.

Where databases are described such as the databases 204 and 205 a, itwill be understood by one of ordinary skill in the art that (i)alternative database structures to those described may be readilyemployed, and (ii) other memory structures besides databases may bereadily employed. Any illustrations or descriptions of any sampledatabases disclosed herein are illustrative arrangements for storedrepresentations of information. Any number of other arrangements may beemployed besides those suggested by tables illustrated in the drawingsor elsewhere. Similarly, any illustrated entries of the databasesrepresent exemplary information only; one of ordinary skill in the artwill understand that the number and content of the entries can bedifferent from those disclosed herein. Further, despite any depiction ofthe databases as tables, other formats including relational databases,object-based models, and/or distributed databases may be used to storeand manipulate the data types disclosed herein. Likewise, object methodsor behaviors of a database can be used to implement various processessuch as those disclosed herein. In addition, the databases may, in aknown manner, be stored locally or remotely from a device that accessesdata in such a database. In embodiments where there are multipledatabases in the system, the databases may be integrated to communicatewith each other for enabling simultaneous updates of data linked acrossthe databases, when there are any updates to the data in one of thedatabases.

The present invention can be configured to work in a network environmentcomprising one or more computers that are in communication with one ormore devices via a network. The computers may communicate with thedevices directly or indirectly, via a wired medium or a wireless mediumsuch as the Internet, a local area network (LAN), a wide area network(WAN) or the Ethernet, a token ring, or via any appropriatecommunications mediums or combination of communications mediums. Each ofthe devices may comprise processors, for example, the Intel® processors,Advanced Micro Devices (AMD®) processors, UltraSPARC® processors, hp®processors, International Business Machines (IBM®) processors, RISCbased computer processors of ARM Holdings, Motorola® processors, etc.,that are adapted to communicate with the computers. In an embodiment,each of the computers is equipped with a network communication device,for example, a network interface card, a modem, or other networkconnection device suitable for connecting to a network. Each of thecomputers and the devices executes an operating system, for example, theLinux® operating system, the Unix® operating system, any version of theMicrosoft® Windows® operating system, the Mac OS of Apple Inc., the IBM®OS/2, the Palm OS®, the Android® OS, the Blackberry® OS, the Solarisoperating system developed by Sun Microsystems, Inc., or any otheroperating system. Handheld devices execute operating systems, forexample, the Android operating system, the Windows Phone™ operatingsystem of Microsoft Corporation, the BlackBerry® operating system ofResearch in Motion Limited, the iOS operating system of Apple Inc., theSymbian® operating system of Symbian Foundation Limited, etc. While theoperating system may differ depending on the type of computer, theoperating system will continue to provide the appropriate communicationsprotocols to establish communication links with the network. Any numberand type of machines may be in communication with the computers.

The present invention is not limited to a particular computer systemplatform, processor, operating system, or network. One or more aspectsof the present invention may be distributed among one or more computersystems, for example, servers configured to provide one or more servicesto one or more client computers, or to perform a complete task in adistributed system. For example, one or more aspects of the presentinvention may be performed on a client-server system that comprisescomponents distributed among one or more server systems that performmultiple functions according to various embodiments. These componentscomprise, for example, executable, intermediate, or interpreted code,which communicate over a network using a communication protocol. Thepresent invention is not limited to be executable on any particularsystem or group of systems, and is not limited to any particulardistributed architecture, network, or communication protocol.

The foregoing examples have been provided merely for the purpose ofexplanation and are in no way to be construed as limiting of the presentinvention disclosed herein. While the invention has been described withreference to various embodiments, it is understood that the words, whichhave been used herein, are words of description and illustration, ratherthan words of limitation. Further, although the invention has beendescribed herein with reference to particular means, materials, andembodiments, the invention is not intended to be limited to theparticulars disclosed herein; rather, the invention extends to allfunctionally equivalent structures, methods and uses, such as are withinthe scope of the appended claims. Those skilled in the art, having thebenefit of the teachings of this specification, may affect numerousmodifications thereto and changes may be made without departing from thescope and spirit of the invention in its aspects.

I claim:
 1. A computer implemented method for creating a mobileapplication for a user device, comprising: providing a mobileapplication development software executable by at least one processorconfigured to create said mobile application, wherein said mobileapplication development software is accessible by said user device via anetwork; providing a plurality of pre-coded software componentsexecutable by said at least one processor and encapsulated in a mobileapplication creation interface, wherein said pre-coded softwarecomponents dynamically create multiple pages within said pre-codedsoftware components based on data and mapping defined by a user;dynamically mapping said data to be rendered in said mobile applicationwith one or more of a plurality of data sources, by said mobileapplication development software; creating one or more compositesoftware components by combining one or more distinct softwarecomponents selected from a plurality of component sources and/or one ormore of said pre-coded software components, by said mobile applicationdevelopment software; launching said mobile application creationinterface in said user device and inserting one or more of saidpre-coded software components, and one or more of said created compositesoftware components into said launched mobile application creationinterface, by said mobile application development software; creatingsaid mobile application in said launched mobile application creationinterface, by said mobile application development software, using one ormore of said inserted one or more pre-coded software components, saidinserted one or more created composite software components, and saiddynamically mapped data; and receiving inputs from said user, by saidmobile application development software, for publishing said createdmobile application to an enterprise application store for providingaccess to download said created mobile application on one or more enduser devices or wearables.
 2. The computer implemented method of claim1, wherein said inserting one or more of said pre-coded softwarecomponents and one or more of said created composite software componentsinto said launched mobile application creation interface furthercomprises dragging and dropping one or more of said pre-coded softwarecomponents and one or more of said created composite software componentsinto said launched mobile application creation interface.
 3. Thecomputer implemented method of claim 1, further comprising generation ofone or more recommendations for addition of one or more characteristicobjects associated with said mobile application by said mobileapplication development software based on a real time analysis anddynamic learning of selective data of similar mobile applicationsdeveloped based on one or more of functionality, an industry, and acategory related to said mobile application, wherein said generation ofone or more recommendations further comprises dynamically updating saidgenerated one or more recommendations for said addition of said one ormore characteristic objects associated with said mobile application, bysaid mobile application development software, based on a selection ofone or more supplementary characteristic objects received from said userdevice.
 4. The computer implemented method of claim 1, wherein saidcreating said mobile application in said launched mobile applicationcreation interface further comprises said mobile application developmentsoftware using one or more adaptively configured application programminginterfaces for backend integration of said mobile application with saiduser device for operating said mobile application on said user device,wherein said using of said one or more adaptively configured applicationprogramming interfaces further comprises implementing one or more ofmachine to machine data convergence, process to machine data interactionfor enabling one or more of a gamification, an augmented reality, and anear field communication, establishing communication and exchange ofsaid data between said created mobile application and said user device,wherein said creating said mobile application in said launched mobileapplication creation interface further comprises connecting said createdmobile application to a plurality of backend databases by said mobileapplication development software via said network for creating enhancedmobile applications, and wherein said creating said mobile applicationin said launched mobile application creation interface further comprisesproviding direct access to one or more of web services and applicationprogramming interfaces from a web address, by said mobile applicationdevelopment software.
 5. The computer implemented method of claim 1,further comprising displaying real time data simulations of said mobileapplication in said launched mobile application creation interface bysaid mobile application development software during each stage of saidcreation of said mobile application.
 6. The computer implemented methodof claim 1, wherein said pre-coded software components comprise socialnetworking components configured to embed social features with one ormore of business processes and follow up action items in said mobileapplication.
 7. The computer implemented method of claim 1, furthercomprising dynamically populating said data sources in said mobileapplication creation interface and allowing mapping of one or more ofsaid data sources to one or more of said pre-coded software componentsby said mobile application development software for one of updating saidone or more of said pre-coded software components and creating one ormore distinct software components.
 8. The computer implemented method ofclaim 1, further comprising collecting real time usage data by saidmobile application development software for tracking and categorizingusers of said created mobile application and providing real timeanalytics.
 9. The computer implemented method of claim 1, wherein saidmobile application development software is configured to operate as oneof a software as a service and a platform as a service accessible bysaid user device via said network.
 10. The computer implemented methodof claim 1, wherein said pre-coded software components are configurablefor generating supplementary software components using said mobileapplication development software and said data sources.
 11. The computerimplemented method of claim 1, wherein said mobile applicationdevelopment software is configured to create said mobile application ofa plurality of types, wherein said types comprises a native type of saidmobile application, a web type of said mobile application, and a crossplatform type of said mobile application for any mobile device orwearables.
 12. The computer implemented method of claim 1, wherein saidmobile application development software is configured to provide a newapplication delivery model that supports hyper-personalization, whereinsaid users of said created mobile application can one of personalizeexisting applications in said enterprise application store and build newapplications as per their own preferences without coding.
 13. A computerimplemented system for creating a mobile application for a user device,comprising: at least one processor; a non-transitory computer readablestorage medium communicatively coupled to said at least one processor,said non-transitory computer readable storage medium configured to storea mobile application development software; and said mobile applicationdevelopment software executable by said at least one processor, whereinsaid mobile application development software comprises: a plurality ofpre-coded software components encapsulated in a mobile applicationcreation interface, wherein said pre-coded software componentsdynamically create multiple pages within said pre-coded softwarecomponents based on data and mapping defined by a user; a mapping moduleconfigured to dynamically map said data to be rendered in said mobileapplication with one or more of a plurality of data sources; a datareception module configured to receive a selection of one ofpreconfigured user interfaces and a list of predefined user interfacesfrom a user device via a network for launching a mobile applicationcreation interface in said user device to download and deploy mobileapplications, wherein said user device is one of a mobile interface, amobile device or wearables; said data reception module furtherconfigured to receive an indication of each of one or more of saidpre-coded software components from said user device via said network; acomposite software component creation module configured to create one ormore composite software components by combining one or more distinctsoftware components selected from a plurality of component sourcesand/or one or more of said pre-coded software components; a componentinsertion module configured to insert one or more of said pre-codedsoftware components and said created one or more composite softwarecomponents into said launched mobile application creation interface,wherein said inserting said one or more of said each of said one or moreof said pre-coded software components and said created one or morecomposite software components comprises dragging and dropping said oneor more of said each of said one or more of said pre-coded softwarecomponents and said created one or more composite software componentsinto said launched mobile application creation interface; arecommendation engine configured to generate one or more recommendationsfor addition of one or more characteristic objects associated with saidmobile application based on a real time analysis and dynamic learning ofselective data of similar mobile applications developed based on one ormore of functionality, an industry, and a category related to saidmobile application; a backend integration module configured toadaptively configure one or more application programming interfaces fora backend integration of said mobile application with said user devicefor operating said mobile application on said user device; and a mobileapplication creation module configured to create said mobile applicationin said launched mobile application creation interface using one or moreof said inserted one or more pre-coded software components and saidcreated one or more composite software components, said generated one ormore recommendations, said dynamically mapped data, and said adaptivelyconfigured one or more application programming interfaces.
 14. Thecomputer implemented system of claim 13, further comprising an analyticsengine configured to collect real time usage data for tracking andcategorizing users of said created mobile application and providing realtime analytics.
 15. The computer implemented system of claim 13, whereinsaid adaptively configured one or more application programminginterfaces are configured to implement one or more of a back officeintegration, a machine to machine convergence, a process to machineinteraction for enabling one or more of a gamification, an augmentedreality, and a near field communication, establishing communication andexchange of said data between said created mobile application and saiduser device, and wherein said backend integration module is furtherconfigured to connect said created mobile application to a plurality ofbackend databases via said network for creating enhanced mobileapplications.
 16. The computer implemented system of claim 13, whereinsaid mobile application creation module is configured to display realtime data simulations of said mobile application in said launched mobileapplication creation interface during each stage of said creation ofsaid mobile application.
 17. The computer implemented system of claim13, wherein said recommendation engine is further configured todynamically update said generated one or more recommendations for saidaddition of said one or more characteristic objects associated with saidmobile application based on a selection of one or more supplementarycharacteristic objects received from said user device.
 18. The computerimplemented system of claim 13, wherein said mapping module is furtherconfigured to dynamically populate said data sources in said mobileapplication creation interface and map one or more of said data sourcesto one or more of said pre-coded software components for one of updatingsaid one or more pre-coded software components and creating said one ormore distinct software components based on inputs received from saiduser device.
 19. The computer implemented system of claim 13, whereinsaid pre-coded software components are configurable for generatingsupplementary software components using said mobile applicationdevelopment software and said data sources, and wherein said pre-codedsoftware components comprise social networking components configured toembed social features comprising one or more of business processes andfollow up action items into said mobile application.
 20. A computerprogram product comprising a non-transitory computer readable storagemedium, said non-transitory computer readable storage medium storingcomputer program codes that comprise instructions executable by at leastone processor, said computer program codes comprising: a first computerprogram code for dynamically mapping data to be rendered in a mobileapplication with one or more of a plurality of data sources; a secondcomputer program code for receiving a selection of one of preconfigureduser interfaces and a list of predefined user interfaces from a userdevice via a network for launching a mobile application creationinterface; a third computer program code for receiving an indication ofeach of one or more of a plurality of pre-coded software components fromsaid user device via said network, wherein said pre-coded softwarecomponents are fully developed applications that can be assembled tobuild apps in the mobile application creation interface, wherein saidmobile application creation interface is accessible at the user devicevia the network to download and deploy mobile apps in any mobileinterface, device or wearables, wherein said pre-coded softwarecomponents are adaptable based on context and behavioral elements,wherein said pre-coded software components comprise hierarchical layersof data, interactive elements configured to enable interactions withsaid data, and predetermined criteria, and wherein said pre-codedsoftware components dynamically create multiple pages within saidpre-coded software components based on data and mapping defined by auser; a fourth computer program code for creating one or more compositesoftware components by combining one or more of distinct softwarecomponents selected from a plurality of component sources and/or one ormore of said pre-coded software components; a fifth computer programcode for inserting one or more of said each of said one or more of saidpre-coded software components and said created one or more compositesoftware components into said launched mobile application creationinterface, wherein said inserting said one or more of said each of saidone or more of said pre-coded software components and said created oneor more composite software components comprises dragging and droppingsaid one or more of said each of said one or more of said pre-codedsoftware components and said created one or more composite softwarecomponents into said launched mobile application creation interface; asixth computer program code for generating one or more recommendationsfor addition of one or more characteristic objects associated with saidmobile application based on a real time analysis and dynamic learning ofselective data of similar mobile applications developed based on one ormore of functionality, an industry, and a category related to saidmobile application; a seventh computer program code for adaptivelyconfiguring one or more application programming interfaces for a backendintegration of said mobile application with said user device foroperating said mobile application on said user device; an eighthcomputer program code for creating said mobile application in saidlaunched mobile application creation interface using one or more of saidinserted one or more pre-coded software components, said created one ormore composite software components, said generated one or morerecommendations, said dynamically mapped data, and said adaptivelyconfigured one or more application programming interfaces; and anadditional programming code for collecting real time usage data fortracking and categorizing users of said created mobile application andproviding real time analytics.